我們介紹完了 priority Queue,接著要介紹的是 "double-ended" priority Queue
除了有新增元素之外,提供「提出最低優先權元素」及「提出最高優先權元素」2種操作。
而今天要來介紹的就是最適合用來實作他的資料結構。
是一棵 complete binary tree,使用 Array 儲存。可為空,若非空則:
圖例:wiki
因為當這樣設計後:min-value 在 root,max-value 在 level-2 節點的最大值。全都是 O(1) 時間
用個例子來說明:
一樣來說明:
delete max-value 就是 delete min 的完全反向操作,在一個 MAX-MIN Heap 進行調整。當然,並沒有這個名詞,不過方便說明則這樣稱呼。
我們直接來看範例:
接下來兩個比較少見的資料結構,都介紹定義而已,並附上操作的資料來源。
資料來源:https://www.tutorialspoint.com/deaps-in-data-structure
是一棵 complete binary tree,使用 Array 儲存。可為空,若非空則:
圖中 A 和 B 為對應位置。
資料來源:https://www.tutorialspoint.com/symmetric-min-max-heaps
是一棵 complete binary tree,使用 Array 儲存。可為空,若非空則:
我們介紹完了所有的 Binary tree 結構,也介紹完了 priority queue 的實作。
接著要來進入 external search 的章節。明天來介紹 m-way search tree